Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for Python's "Limited API"; Test cibuildwheel and py >=3.5 using TestPythonSML.py #461

Merged
merged 14 commits into from
May 17, 2024

Conversation

ShadowJonathan
Copy link
Contributor

@ShadowJonathan ShadowJonathan commented May 16, 2024

Resolves #458
Resolves #460

This pivots scons to build for a single "limited API" that stays future-proof for all python 3 versions, following a single one it is built for.

This also tests all those versions that it is then supporting. This is done in parallel, so that it impacts CI times minimally. (and adds 30 seconds max)

This'll only build the abi3 wheels if SOAR_PYTHON_ABI3 is defined at the time of building. The output wheels are appropriately tagged, so that version mixing does not happen.

(This environment variable makes the building of abi3 wheels completely optional, python-version-specific wheels will be created without it (like before), which should be alright for development installs and the likes)


This PR also has cibuildwheel call and run TestPytonSML.py to more thoroughly test its wheels.

This change is also added to the above OS+PyVersion testing matrix.

@ShadowJonathan ShadowJonathan marked this pull request as ready for review May 16, 2024 13:46
@ShadowJonathan
Copy link
Contributor Author

Reduced from 24 files to 5 :)

soar_sml-9.6.3.202405161333.dev117-cp35-abi3-macosx_10_9_x86_64.whl
soar_sml-9.6.3.202405161333.dev117-cp35-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
soar_sml-9.6.3.202405161333.dev117-cp35-abi3-win_amd64.whl
soar_sml-9.6.3.202405161333.dev117-cp35-abi3-macosx_11_0_arm64.whl
soar_sml-9.6.3.202405161333.dev117-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

.github/workflows/build.yml Outdated Show resolved Hide resolved
.github/workflows/build.yml Show resolved Hide resolved
.github/workflows/build.yml Show resolved Hide resolved
SConstruct Outdated Show resolved Hide resolved
@garfieldnate
Copy link
Collaborator

Note to self for later: there appears to be non-determinism in this test that randomly failed on Windows:

testSpreadingActivation_AlphabetAgentAllOn: ✅ 😈 Ha! Assert: testSpreadingActivation_AlphabetAgentAllOn halted too early. Letters were likely skipped. DC = 1583

@ShadowJonathan ShadowJonathan changed the title Add support for Python's "Limited API" Add support for Python's "Limited API"; Test cibuildwheel and py >=3.5 using TestPythonSML.py May 17, 2024
@ShadowJonathan
Copy link
Contributor Author

ShadowJonathan commented May 17, 2024

I've added extra changes which now addresses #460, per the review comment.

@garfieldnate
Copy link
Collaborator

Just had one last tiny comment. Very excited to merge this! Thank you for all your work!

@garfieldnate
Copy link
Collaborator

Actually I can take care of that comment. I'll go ahead and merge it!

@garfieldnate garfieldnate merged commit 7cb7ac7 into SoarGroup:development May 17, 2024
31 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Have cibuildwheel use TestPythonSML.py for test command Have SWIG use the Python limited API
2 participants